/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model.Interface;

import java.util.Iterator;
import messages.FileRequest;

/**
 * L'interface CollectionRequest permet de retrouver le couple <tt>Nom,FileRequest</tt>
 * d'utilisateurs distants connectés au sein d'une ListUser.
 *
 * @author      Frank Djomo
 * @author      Christelle SIAGO HAPPI
 * @author      djomopoueme@gmail.com
 * @author      christelle.siagohappi@gmail.com
 * @version     1.0
 * @see FileRequest
 */
public interface  CollectionRequest{
    /**
    * Retourne le login d'un utilisateur distant à partir de sa requete de transfert
    * @see FileRequest
    * @param req FileRequest de l'utilisateur distant.
    * @return Login de l'utilisateur distant qui correspond à l'adresse IP
    */
    public String getUsernameByRequest(FileRequest req);
    /**
    * Retourne le FileRequest d'un utilisateur distant à partir de son login
    * @see FileRequest
    * @param login Nom de l'utilisateur distant dont on cherche l'adresse IP
    * @return FileRequest de l'utilisateur qui correspond au login
    */
    public FileRequest getRequestByName(String login);  
    /**
    * Test si le login recherché fait partie de la liste
    * @param login Login de l'utilisateur recherché
    * @return  Résultat de la recherche   
    *          <code>true</code> si login existe
    *          <code>false</code> sinon
    */
    public boolean containsName(String login);
    /**
    * Test si le FileRequest recherché fait partie de la liste
    * @param request Adresse IP de l'utilisateur recherché
    * @return  Résultat de la recherche  
    *          <code>true</code> si request existe
    *          <code>false</code> sinon
    */
    public boolean containsRequest(FileRequest request);
    /**
    * Retourne un iterateur
    * @return Iterateur sur la collection
    */
    public  Iterator iterator();
    
}
